import request from './index'

/**
 * 提交游戏答案
 * @param {Object} data 包含userId, puzzleId, answer, timeUsed等的数据对象
 * @returns {Promise} 提交结果
 */
export function submitAnswer(data) {
  return request({
    url: '/games/submit-answer',
    method: 'post',
    data
  })
}

/**
 * 记录用户操作
 * @param {Object} data 包含userId, puzzleId, actionType, cellIndex, value的数据对象
 * @returns {Promise} 记录结果
 */
export function recordAction(data) {
  return request({
    url: '/games/record-action',
    method: 'post',
    data
  })
}

/**
 * 获取用户解答历史
 * @param {Object} params 包含userId, page, limit的参数对象
 * @returns {Promise} 解答历史
 */
export function getUserAnswers(params) {
  return request({
    url: '/games/user-answers',
    method: 'get',
    params
  })
}

/**
 * 获取下一个游戏题目 (根据用户进度)
 * @param {Object} data 包含userId和level的数据对象
 * @returns {Promise} 下一个题目
 */
export function getNextPuzzle(data) {
  return request({
    url: '/games/next-puzzle',
    method: 'post',
    data
  })
}

/**
 * 保存游戏进度（暂存）
 * @param {Object} data 包含userId, puzzleId, answer, timeUsed, mistakes, hintsUsed的数据对象
 * @returns {Promise} 保存结果
 */
export function saveProgress(data) {
  return request({
    url: '/games/save-progress',
    method: 'post',
    data
  })
}

/**
 * 获取游戏进度
 * @param {Object} params 包含userId和puzzleId的参数对象
 * @returns {Promise} 游戏进度
 */
export function getProgress(params) {
  return request({
    url: '/games/progress',
    method: 'get',
    params
  })
}
